/*6656
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bean;


import dao.ProfessoresDAO;
import dominio.Professores;
import java.io.Serializable;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

/**
 *
 * @author miguel
 */
@ManagedBean(name = "loginBean")
@RequestScoped
public class LoginBean implements Serializable {

    private Professores professor;
    private boolean login = false;

    public LoginBean() {
        professor = new Professores();
    }

    public Professores getProfessor() {
        return professor;
    }

    public void setProfessor(Professores professor) {
        this.professor = professor;
    }
    
    public boolean isLogin() {
        return login;
    }

    public void setLogin(boolean login) {
        this.login = login;
    }

    private String MD5(String senha) {

        String sen = "";
        MessageDigest md = null;
        try {
            md = MessageDigest.getInstance("MD5");
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        BigInteger hash = new BigInteger(1, md.digest(senha.getBytes()));
        sen = hash.toString(16);
        return sen;
    }

    public String logar() {
        ProfessoresDAO professorDAO = new ProfessoresDAO();
        Professores logado;

        logado = professorDAO.autenticar(this.professor.getUsuario(), MD5(this.professor.getSenha()));

        if (logado != null) {
            setProfessor(logado);
            this.login = true;
                       
            //definindo o usuario logado na secao
            FacesContext ctx = FacesContext.getCurrentInstance();
            HttpSession session = (HttpSession) ctx.getExternalContext().getSession(false);
            session.setAttribute("usuarioAutenticado", logado);

            return "index";
        } else {
            FacesMessage msg = new FacesMessage("Atenção!", "Usuário ou senha inválido, ou não possui permissão para acesso ao sistema!");
            FacesContext.getCurrentInstance().addMessage("teste", msg);
            return "";
        }

    }

}
